#include "compile_run.hpp"
#include "../comm/httplib.h"

using namespace httplib;
using namespace ns_compile_run;


int main(int argc,char *argv[])
{
  if(argc != 2)
  {
    std::cout<<"usage:"<<"proc port"<<std::endl;
    return 1;
  }
  Server server;
  
  server.Post("/compile_run",[](const Request& req,Response& resp)\
              {
                std::string body = req.body;
                std::string out;
                if(!body.empty())
                {
                  CompileAndRun::start(body,&out);
                resp.set_content(out,"application/json; charset=utf-8");
                std::cout<<"代码运行中";
                }
              }
            );
  server.listen("0.0.0.0",atoi(argv[1]));

  return 0;
}







// int main()
// {
//   Server svr;

//   svr.Get("/hello",[](const Request &req,Response &resp)
//         {
//           resp.set_content("hello httplib,你好 httplib!",
//           "text/plain;charset=utf-8");
//         });
  
//   svr.listen("0.0.0.0",8080);
  
//   return 0;
// }


// int main()
// {
//     Json::Value in;
//     in["code"] =R"(#include <iostream>
//                   int main()
//                   {
//                     int a = 0;
//                     a = 10 / a;
//                     std::cout<<"hello,world"<<std::endl;
//                     std::cout<<"hello,world"<<std::endl;
//                     std::cout<<"hello,world"<<std::endl;
//                     return 0;
//                   } )";
//     in["input"] =" ";
//     in["cpu_limit"] = 5;
//     in["mem_limit"] = 102400;
//     std::string str;
//     JsonUtil::Serialize(in,str);
//     //std::cout<<str;
//     std::string out;
//     CompileAndRun::start(str,&out);
//     std::cout<<out;

//     return 0;
// }